home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Jumpstart / Multimedia Microsoft Jumpstart Version 1.1a (Microsoft).BIN / develpmt / drivers / mscdex / hitachi / mscdex.inc < prev    next >
Encoding:
Text File  |  1990-10-15  |  10.2 KB  |  343 lines

  1. ; ***************************************************************************
  2. ; *                                                                         *
  3. ; * MSCDEX.INC                                                              *
  4. ; *                                                                         *
  5. ; * C D - R O M Device Driver Definitions                                   *
  6. ; *                                                                         *
  7. ; * Status word bit, command code, error code, and command structure        *
  8. ; * definitions for a MicroSoft CD-ROM EXtensions hardware-dependent        *
  9. ; * device driver                                                           *
  10. ; *                                                                         *
  11. ; *                                                                         *
  12. ; * History:                                                                *
  13. ; *                                                                         *
  14. ; *     ~1986 -by- Dan Newell                                               *
  15. ; *         Created.                                                        *
  16. ; *                                                                         *
  17. ; *     Fri Jun 22 1990  -by- Michael Edwards                               *
  18. ; *         Changed some names.                                             *
  19. ; *     10/1/90  -by- JohnYG                                                *
  20. ; *         Final Release (v2.20)                                           *
  21. ; *                                                                         *
  22. ; ***************************************************************************
  23.  
  24. ;
  25. ; Segment definitions to guarantee proper ordering & attributes
  26. ;
  27. _TEXT   SEGMENT BYTE PUBLIC 'CODE'
  28. _TEXT   ENDS
  29.  
  30. _DATA   SEGMENT WORD PUBLIC 'DATA'
  31. _DATA   ENDS
  32.  
  33. _LAST   SEGMENT PARA PUBLIC 'LAST'
  34. _LAST   ENDS
  35.  
  36. ;----------------------------------------------------------------
  37.  
  38.  
  39. ;  ***  Status word bits  ***
  40.  
  41. ERRBIT                          = 8000h
  42. BUSYBIT                         = 0200h
  43. DONEBIT                         = 0100h
  44.  
  45.  
  46. ; *** Play modes
  47.  
  48. PLAY_TRUE                       = 1
  49. PAUSE_TRUE                      = 2
  50. PLAY_FALSE                      = 0
  51. PAUSE_FALSE                     = 0
  52.  
  53.  
  54. ;  ***  Normal DOS device driver commands  ***
  55.  
  56. DVRQ_INIT                       = 0
  57. DVRQ_MEDIACHK                   = 1
  58. DVRQ_BLDBPB                     = 2
  59. DVRQ_IOCTLI                     = 3
  60. DVRQ_INPUT                      = 4
  61. DVRQ_NONDSTI                    = 5
  62. DVRQ_STATI                      = 6
  63. DVRQ_FLUSHI                     = 7
  64. DVRQ_OUTPUT                     = 8
  65. DVRQ_VOUTPUT                    = 9
  66. DVRQ_STATO                      = 10
  67. DVRQ_FLUSHO                     = 11
  68. DVRQ_IOCTLO                     = 12
  69. DVRQ_DEVOPEN                    = 13
  70. DVRQ_DEVCLOSE                   = 14
  71. DVRQ_REM$MED                    = 15
  72. DVRQ_BUSYO                      = 16
  73. DVRQ_NCMD_MAX                   = 16
  74.  
  75.  
  76. ;  ***  Extended CDROM device driver commands  ***
  77.  
  78. DVRQ_ECMD_MIN                   = 128
  79. DVRQ_READL                      = 128
  80. DVRQ_READLNB                    = 129
  81. DVRQ_READLPRE                   = 130
  82. DVRQ_SEEK                       = 131
  83. DVRQ_PLAY                       = 132
  84. DVRQ_STOP                       = 133
  85. DVRQ_WRITEL                     = 134
  86. DVRQ_WRITELV                    = 135
  87. DVRQ_RESUME                     = 136
  88. DVRQ_ECMD_MAX                   = 136
  89.  
  90.  
  91. MODE_HSG                        = 0
  92. MODE_RED                        = 1
  93.  
  94. IO_COOKED                       = 0
  95. IO_RAW                          = 1
  96.  
  97.  
  98. ;  ***  Ioctl Input commands  ***
  99.  
  100. IOI_ret_addr                    = 0
  101. IOI_loc_head                    = 1
  102. IOI_ioquery                     = 2
  103. IOI_err_stats                   = 3
  104. IOI_audio_info                  = 4
  105. IOI_rd_drv_bytes                = 5
  106. IOI_dev_status                  = 6
  107. IOI_ret_sectsize                = 7
  108. IOI_ret_volsize                 = 8
  109. IOI_media_changed               = 9
  110. IOI_audio_dsk_inf               = 10
  111. IOI_audio_trk_inf               = 11
  112. IOI_audio_qch_inf               = 12
  113. IOI_audio_subinfo               = 13
  114. IOI_upc_code                    = 14
  115. IOI_audio_status                = 15
  116. IOI_cmd_max                     = 15
  117.  
  118.  
  119. ;  ***  Ioctl Output commands  ***
  120.  
  121. IOO_eject_disc                  = 0
  122. IOO_lock_door                   = 1
  123. IOO_reset_drv                   = 2
  124. IOO_set_audio_ch_ctl            = 3
  125. IOO_wr_drv_bytes                = 4
  126. IOO_close_tray                  = 5
  127. IOO_cmd_max                     = 5
  128.  
  129.  
  130. ;  ***  Device error codes  ***
  131.  
  132. ; drverr_write_protect          = 0
  133. drverr_unknown_unit             = 1
  134. drverr_drive_not_ready          = 2
  135. drverr_unknown_command          = 3
  136. drverr_data_error               = 4
  137. drverr_bad_req_len              = 5
  138. drverr_seek_error               = 6
  139. drverr_unknown_media            = 7
  140. drverr_sector_not_found         = 8
  141. ; drverr_out_of_paper           = 9
  142. ; drverr_write_fault            = 10
  143. drverr_read_fault               = 11
  144. drverr_general_failure          = 12
  145. ; reserved                      = 13
  146. ; reserved                      = 14
  147. drverr_invalid_disc_change      = 15
  148.  
  149.  
  150. ;  ***  Device header structure definition  ***
  151.  
  152. _DeviceHeader   struc
  153. dev_next        dd      ?               ;pointer to next device
  154. dev_attr        dw      ?               ;attributes (char, IOCTL, Open/Close/RM)
  155. dev_strat       dw      ?               ;offset of strategy routine
  156. dev_intr        dw      ?               ;offset or interrupt routine
  157. dev_name        db      8 dup (' ')     ;device name (must be 8 valid chars)
  158. dev_rsvd        dw      ?               ;reserved
  159. dev_drvlet      db      ?               ;drive letter
  160. dev_units       db      ?               ;number of units
  161. _DeviceHeader   ends
  162.  
  163.  
  164. ;  ***  Request header structure definition  ***
  165.  
  166. _RequestHeader  struc
  167. rqh_len         db      ?
  168. rqh_unit        db      ?
  169. rqh_cmd         db      ?
  170. rqh_status      dw      ?
  171. rqh_rsvd        db      8 dup (?)
  172. _RequestHeader  ends
  173.  
  174.  
  175. ;  ***  INIT command request header structure definition  ***
  176.  
  177. _InitHeader     struc
  178. init_rqh        db      size _RequestHeader dup (?)
  179. init_units      db      ?
  180. init_endaddr    dd      ?
  181. init_bpbarr     dd      ?
  182. init_devno      db      ?
  183. _InitHeader     ends
  184.  
  185.  
  186. ;  ***  IOCTL (I/O) command request header structure definition  ***
  187.  
  188. _IoctlHeader    struc
  189. ioctl_rqh       db      size _RequestHeader dup (?)
  190. ioctl_media     db      ?
  191. ioctl_xfer      dd      ?
  192. ioctl_nbytes    dw      ?
  193. ioctl_sector    dw      ?
  194. ioctl_valid     dd      ?
  195. _IoctlHeader    ends
  196.  
  197.  
  198. ;  ***  READ LONG command request header structure definition  ***
  199.  
  200. _ReadWriteL     struc
  201. rwl_rqh         db      size _RequestHeader dup (?)
  202. rwl_addrmd      db      ?
  203. rwl_xfer        dd      ?
  204. rwl_nsects      dw      ?
  205. rwl_sectno      dd      ?
  206. rwl_mode        db      ?
  207. rwl_ilsize      db      ?
  208. rwl_ilskip      db      ?
  209. _ReadWriteL     ends
  210.  
  211. ;  ***  PLAY command request header structure definition  ***
  212.  
  213. _PlayReq        struc
  214. pl_rqh          db      size _RequestHeader dup (?)
  215. pl_addrmd       db      ?               ; MODE_HSG or MODE_RED
  216. pl_start        dd      ?               ; redbook or hsg addr of start frame
  217. pl_num          dd      ?               ; binary number of frames to play
  218. _PlayReq        ends
  219.  
  220. ;  ***  Format for bytes returned from qchannel ***
  221.  
  222. _QchanInfo      struc
  223. ctrl_adr        db      ?
  224. tno             db      ?
  225. point_x         db      ?
  226. min             db      ?
  227. sec             db      ?
  228. frm             db      ?
  229. zero            db      ?
  230. pmin            db      ?
  231. psec            db      ?
  232. pframe          db      ?
  233. _QchanInfo      ends
  234.  
  235. ;  ***  Format for Toc information ***
  236.  
  237. _TocInfo                struc
  238. Tcntrl_adr      db      ?
  239. Tpmin           db      ?
  240. Tpsec           db      ?
  241. Tpframe         db      ?
  242. _TocInfo                ends
  243.  
  244. ;  ***  IOCTL INPUT sub-command buffer structure definitions  ***
  245.  
  246. _Ioi_return_address     struc
  247. io_devaddr      dd      ?
  248. _Ioi_return_address     ends
  249.  
  250. _Ioi_location_head      struc
  251. io_loc_mode     db      ?
  252. io_loc          dd      ?
  253. _Ioi_location_head      ends
  254.  
  255. _Ioi_io_query   struc
  256. io_query_stat   db      ?
  257. io_query_reqno  dw      ?
  258. _Ioi_io_query   ends
  259.  
  260. _Ioi_audio_channel_ctrl struc
  261. io_ch0_ich      db      ?
  262. io_ch0_vol      db      ?
  263. io_ch1_ich      db      ?
  264. io_ch1_vol      db      ?
  265. io_ch2_ich      db      ?
  266. io_ch2_vol      db      ?
  267. io_ch3_ich      db      ?
  268. io_ch3_vol      db      ?
  269. _Ioi_audio_channel_ctrl ends
  270.  
  271. _Ioi_read_drive_bytes   struc
  272. io_num_bytes    db      ?
  273. io_rd_buf       db      128 dup (?)
  274. _Ioi_read_drive_bytes   ends
  275.  
  276. _Ioi_device_status      struc
  277. io_dev_params   dd      ?
  278. _Ioi_device_status      ends
  279.  
  280. _Ioi_sector_size        struc
  281. io_sect_mode    db      ?
  282. io_sect_size    dw      ?
  283. _Ioi_sector_size        ends
  284.  
  285. _Ioi_volume_size        struc
  286. io_volume_size  dd      ?
  287. _Ioi_volume_size        ends
  288.  
  289. _Ioi_media_change       struc
  290. io_media        db      ?
  291. _Ioi_media_change       ends
  292.  
  293. _Ioi_audio_disk_info    struc
  294. io_lowest_trk   db      ?
  295. io_highest_trk  db      ?
  296. io_lout_addr    db      4 dup(?)
  297. _Ioi_audio_disk_info    ends
  298.  
  299. _Ioi_audio_track_info   struc
  300. io_track_num    db      ?
  301. io_track_addr   db      4 dup (?)
  302. io_track_cntl   db      ?
  303. _Ioi_audio_track_info   ends
  304.  
  305. _Ioi_audio_Qchannel_info struc
  306. io_qctl         db      ?
  307. io_qtno         db      ?
  308. io_qx           db      ?
  309. io_qtrk_time    db      3 dup(?)
  310. io_q_zero       db      ?
  311. io_qdsk_time    db      3 dup(?)
  312. _Ioi_audio_Qchannel_info ends
  313.  
  314. _Ioi_audio_status_info  struc
  315. io_audio_st_bit dw      ?
  316. io_audio_start  dd      ?
  317. io_audio_end    dd      ?
  318. _Ioi_audio_status_info  ends
  319.  
  320. ;  ***  IOCTL OUTPUT sub-command buffer structure definitions  ***
  321.  
  322. ;_Ioo_eject     struc
  323. ;_Ioo_eject     ends
  324.  
  325. _Ioo_lock       struc
  326. io_lock         db      ?
  327. _Ioo_lock       ends
  328.  
  329. ;_Ioo_reset     struc
  330. ;_Ioo_reset     ends
  331.  
  332. _Ioo_write_drive_ctrl   struc
  333. ioo_wrdev_top   db      ?
  334. ioo_wrdev_data  dw      7 dup(?)
  335. ioo_wrdev_char  db      3 dup(?)
  336. _Ioo_write_drive_ctrl   ends
  337.  
  338. ;Ioo_close      struc
  339. ;Ioo_close      ends
  340.  
  341.  
  342.  
  343.